public class ProjectReference
{
    private readonly string DirectoryPath = @"../../../abp/framework/src";
    private readonly string ProjectReferencePrefix = "<ProjectReference Include=";
    private readonly List<string> fileTypeFilter = new List<string>()
    {
        ".csproj"
    };

    public Dictionary<string, List<string>> AnalyseReference()
    {
        var root = new DirectoryInfo(DirectoryPath);
        var dics = root.GetDirectories();
        var solutionReferences = new Dictionary<string, List<string>>();
        foreach (var dic in dics)
        {
            //Console.WriteLine(dic.Name);

            var file = dic.GetFiles().Where(m => fileTypeFilter.Any(f => f == m.Extension)).First();
            Console.WriteLine(file.Name);

            var projectReferences = new List<string>();
            var lines = System.IO.File.ReadAllLines(file.FullName);
            foreach (string line in lines)
            {
                if (!line.Trim().StartsWith(ProjectReferencePrefix))
                {
                    continue;
                }

                var projectReference = line.Trim().Replace(ProjectReferencePrefix, "").Replace("/>", "").Trim().Replace(@"""","").Replace("..", "").Split(@"\").Last();
                Console.WriteLine("->" + projectReference);
                projectReferences.Add(projectReference);
            }

            solutionReferences.Add(file.Name, projectReferences);
        }

        return solutionReferences;
    }

}